package modele;

public abstract class Letter<Content> {
	protected Inhabitant sender;
	protected Inhabitant receiver;
	protected Content content;
	protected int cost;
	protected int NORMAL_COST = 10;

	public Letter(Inhabitant s, Inhabitant r) {
		sender = s;
		receiver = r;
	}

	/**
	 * Ask the letter type to calculate its cost.
	 * 
	 * @return an int of the cost
	 */
	public abstract int getCost();

	public abstract void doAction();

	public Inhabitant getReceiver() {
		return receiver;
	}

	public Inhabitant getSender() {
		return sender;
	}

	public Content getContent() {
		return content;
	}

	public abstract String getType();
}
